package diploma.tokenizer;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import javax.print.attribute.standard.Sides;

import org.w3c.dom.ls.LSException;

import diploma.substitucija.Buffer;

import diploma.substitucija.Substitucija;

public class Tokenizer
{
	
	public static List<String> bufferToList(StringBuffer file)
	{
		return bufferToList(file, true);
	}
	
	public static List<String> bufferToList(StringBuffer file, boolean presledek)   //
	{
		List<String> list = new ArrayList<String>();
		StringBuffer beseda = new StringBuffer();
		for(int i = 0; i < file.length(); i++) //Gremo skozi vse znake v bufferju
		{
			char znak = file.charAt(i);
			//Kako vem, če je zaporedje znakov beseda?
			if(Character.isLetter(znak))
			{
				beseda.append(Character.toUpperCase(znak)); //tko se dela beseda, da se ji pripenja uppercase crka dokler ne pridemo do znaka, ki ni črka, takrat začnemo znova /new..
			}
			else 
			{
				if(beseda.length() > 0)
				{
				if(presledek)	
					list.add(" " + beseda.toString() + " ");
				else
					list.add(beseda.toString());
					beseda = new StringBuffer();
				}
			}
		}

		return list;
	}
	
	public static void main(String[] args) throws FileNotFoundException
	{
		StringBuffer testFile = Buffer.file2Buffer(new File("sifrirana.txt"));
		List<String> file2list = Tokenizer.bufferToList(testFile);
		int st = 0;
		for(String s : file2list)
		{
			st++;
			System.out.println("Token " + st + ": " + s);
		}
	}
}
